library(readxl)
mydata <- read_xlsx("./Costs.xlsx")
mydata <- as.data.frame(mydata)
mydata$Difference <- mydata$September - mydata$October

library(pastecs)
round(stat.desc(mydata[-1], basic = FALSE), 2)
##              September October Difference
## median           59.85   55.00       5.00
## mean             60.09   55.15       4.94
## SE.mean           1.17    0.91       0.89
## CI.mean.0.95      2.40    1.86       1.81
## var              41.29   24.80      23.54
## std.dev           6.43    4.98       4.85
## coef.var          0.11    0.09       0.98
library(ggplot2)
ggplot(mydata, aes(x = Difference)) +
  geom_histogram(binwidth = 4, colour = "Black") +
  ylab("Frequency") +
  xlab("Difference")

shapiro.test(mydata$Difference)
## 
##  Shapiro-Wilk normality test
## 
## data:  mydata$Difference
## W = 0.8669, p-value = 0.001431
wilcox.test(mydata$September, mydata$October, 
            paired = TRUE,
            correct = FALSE,
            exact = FALSE,
            alternative = "two.sided")
## 
##  Wilcoxon signed rank test
## 
## data:  mydata$September and mydata$October
## V = 414.5, p-value = 0.0001814
## alternative hypothesis: true location shift is not equal to 0
library(ggplot2)
Fig1 <- ggplot(mydata, aes(x = September)) +
  geom_histogram(binwidth = 2.5, colour="gray") +
  scale_x_continuous(breaks = seq(0, 100, 5), limits = c(30, 90)) +
  scale_y_continuous(limits = c(0, 12)) +
  ylab("Frequency")

Fig2 <- ggplot(mydata, aes(x = October)) +
  geom_histogram(binwidth = 2.5, colour="gray") +
  scale_x_continuous(breaks = seq(0, 100, 5), limits = c(30, 90)) +
  scale_y_continuous(limits = c(0, 12)) +
  ylab("Frequency")

library(ggpubr)
ggarrange(Fig1, Fig2,
          ncol = 1)

library(effectsize)
effectsize(wilcox.test(mydata$September, mydata$October, 
                       paired = TRUE,
                       correct = FALSE,
                       exact = FALSE,
                       alternative = "two.sided"))
## r (rank biserial) |       95% CI
## --------------------------------
## 0.78              | [0.57, 0.90]
interpret_rank_biserial(0.78)
## [1] "very large"
## (Rules: funder2019)